package d0523_io;

import java.io.*;
import java.net.URI;

public class 文件 {

	public static void main(String[] args) throws IOException {

		File file = new File("d:\\a.txt");
		file = new File("d:/a.txt");
		// file = new File(new URI("????")); 创建网络地址文件
		//file = new File("文件夹路径","文件名");
		file = new File("d:/driver", "RTL8191s.zip");
		file = new File(new File("d:/driver"), "RTL8191s.zip");

		System.out.println("文件是否存在:" + file.exists());
		System.out.println("文件大小(字节):" + file.length());
		System.out.println("是否是文件:" + file.isFile());

		file = new File("d:/driver", "a.txt");
		// 创建文件, ret 表示创建是否成功
		boolean ret = file.createNewFile();

		file = new File("d:/driver", "temp");
		System.out.println("d:/driver/temp  文件是否存在:" + file.exists());
		file.mkdir();

		file = new File("d:/driver/temp/a/b/c");
		file.mkdir(); // 无法创建多级文件夹
		file.mkdirs(); // 创建多级文件夹

		file = new File("d:/driver");

		System.out.println("==================");
		for (String f : file.list()) {
			System.out.println(f);
		}

		// 查询所有的目录(不包含文件)   匿名类实现文件过滤
		File[] files = file.listFiles(new FileFilter() {
			@Override
			public boolean accept(File pathname) {
				return pathname.isDirectory();
			}
		});
		System.out.println("======= 查询所有的目录(不包含文件) ===========");
		for(File f: files) {
			System.out.println(f.getAbsolutePath());
		}
		/**
		 * 扩展: 过滤带 a 字母的文件
		 */
		files = file.listFiles(new FileFilter() {
			@Override
			public boolean accept(File pathname) {
				return pathname.isFile() && pathname.getName().contains("a");
			}
		});
		System.out.println("======= 过滤带 a 字母的文件  ===========");
		for(File f: files) {
			System.out.println(f.getAbsolutePath());
		}
	}

}
